Commit | Line | Data |
---|---|---|
54a817d4 | 1 | <?xml version="1.0" encoding="utf-8" ?> |
2 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" | |
3 | "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | |
4 | <html xmlns="http://www.w3.org/1999/xhtml"> | |
5 | <head> | |
6 | <title>Site Software</title> | |
7 | <meta name="generator" content="muse.el" /> | |
8 | <meta http-equiv="Content-Type" | |
9 | content="text/html; charset=utf-8" /> | |
11f9bd69 CE |
10 | <meta name="viewport" |
11 | content="width=device-width, initial-scale=1.0" /> | |
98266870 | 12 | <link href="https://feeds.unknownlamer.org/rss/site-updates" |
54a817d4 | 13 | rel="alternate" type="application/rss+xml" title="Updates Feed" /> |
14 | ||
7404d4e1 | 15 | <link rel="stylesheet" href="default.css" /> |
54a817d4 | 16 | </head> |
17 | <body> | |
18 | <h1>Site Software</h1> | |
19 | <div class="contents"> | |
20 | <dl> | |
21 | <dt> | |
22 | <a href="#sec1">Basic Setup</a> | |
23 | </dt> | |
24 | <dt> | |
25 | <a href="#sec2">Scripts</a> | |
26 | </dt> | |
27 | <dd> | |
28 | <dl> | |
29 | <dt> | |
30 | <a href="#sec3">Book Database</a> | |
31 | </dt> | |
32 | <dt> | |
33 | <a href="#sec4">RSS Feed</a> | |
34 | </dt> | |
35 | </dl> | |
36 | </dd> | |
37 | <dt> | |
38 | <a href="#sec5">License</a> | |
39 | </dt> | |
40 | </dl> | |
41 | </div> | |
42 | ||
43 | ||
11f9bd69 CE |
44 | <!-- Page published by Emacs Muse begins here --> |
45 | <h2><a name="sec1" id="sec1"></a> | |
54a817d4 | 46 | Basic Setup</h2> |
47 | ||
48 | <p class="first">I work on the static content of the site using <a href="http://mwolson.org/projects/EmacsMuse.html">Emacs Muse</a>. My muse | |
49 | configuration is pretty long and available in my | |
50 | <a href="http://unknownlamer.org/darcsweb/browse?r=site-emacs;a=headblob;f=/init.d/muse.el">site-emacs repository</a>. The site itself exists in a <a href="http://unknownlamer.org/darcsweb/browse?r=unknownlamer.org;a=summary">darcs repository</a> | |
51 | which is a fork of the source repository I edit locally—the source | |
52 | repository contains muse/image files while the site repository | |
53 | contains html updates as a separate series of patches.</p> | |
54 | ||
55 | <p>This provides a very nice editing environment and makes publishing | |
56 | fairly easy—I push edits from my laptop to my workstation and then | |
57 | off to <a href="http://hcoop.net">HCoop</a> with the html updates. Almost no effort is spent dealing | |
58 | with some dumb web interface or other pointless things making it much | |
59 | easier for me to just write things and toss them up onto the web.</p> | |
60 | ||
61 | ||
62 | <h2><a name="sec2" id="sec2"></a> | |
63 | Scripts</h2> | |
64 | ||
65 | <p class="first">There are a few scripts and templates in the <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=summary">darcsweb::site-support</a> | |
66 | repository that I use to update the | |
67 | site. <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/update.sh">darcsweb::site-support/update.sh</a> automates the process of | |
68 | sending patches off to the server via afs.</p> | |
69 | ||
70 | <h3><a name="sec3" id="sec3"></a> | |
71 | Book Database</h3> | |
72 | ||
73 | <p><a href="Book%20List.html">Book List</a> is autogenerated by <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/books.lisp">darcsweb::site-support/books.lisp</a> which | |
74 | reads a template and a small sexp <em>database</em> of book entries and spits | |
75 | out a muse file which is not kept under VC. This works well for me | |
76 | currently, but I intend to eventually <em>upgrade</em> this simple system to an | |
77 | <a href="http://common-lisp.net/project/elephant/">Elephant</a> object database with a <a href="http://common-lisp.net/project/mcclim/">CLIM</a> frontend for editing | |
78 | entries. I'll probably end up writing a minimal database manager for | |
79 | the sexp based system first.</p> | |
80 | ||
81 | ||
82 | <h3><a name="sec4" id="sec4"></a> | |
83 | RSS Feed</h3> | |
84 | ||
85 | <p class="first">The site rss feed is generated by <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/rss.lisp">darcsweb::site-support/rss.lisp</a>. It | |
86 | fetches the darcs xml changelog for interesting files and then spits | |
87 | out a tolerable feed with automagically generated links from <code>*.muse</code> to | |
88 | <code>*.html</code>. A <a href="http://unknownlamer.org/darcsweb/browse?r=site-support;a=headblob;f=/update-rss-binary">dumped binary</a> is run from a darcs hook on the main | |
89 | repository that handily updates the feed whenever I commit.</p> | |
90 | ||
91 | <p><code>apply posthook update-site-rss | |
92 | apply run-posthook</code></p> | |
93 | ||
94 | <p>Boring old Apache is used to serve up the generated feed. The feed | |
95 | stays updated when I update, and Apache deals with properly letting | |
96 | readers know when the file last changed and whatnot.</p> | |
97 | ||
98 | ||
99 | ||
100 | <h2><a name="sec5" id="sec5"></a> | |
101 | License</h2> | |
102 | ||
103 | <p class="first">All of the scripts used to generate the site are in the public domain | |
104 | unless otherwise mentioned in the files themselves. To use them | |
105 | anywhere else would require modification, but a few chunks of code | |
106 | could be generally useful for other things.</p> | |
107 | ||
108 | ||
109 | <!-- Page published by Emacs Muse ends here --> | |
110 | ||
111 | <p class="cke-buttons"> | |
112 | <!-- validating badges, any browser, etc --> | |
98266870 CE |
113 | <a href="https://validator.w3.org/check/referer"><img |
114 | src="https://www.w3.org/Icons/valid-xhtml10" | |
54a817d4 | 115 | alt="Valid XHTML 1.0!" /></a> |
116 | ||
98266870 | 117 | <a href="https://www.anybrowser.org/campaign/"><img |
54a817d4 | 118 | src="img/buttons/w3c_ab.png" alt="[ Viewable With Any Browser |
119 | ]" /></a> | |
120 | ||
98266870 | 121 | <a href="https://www.debian.org/"><img |
54a817d4 | 122 | src="img/buttons/debian.png" alt="[ Powered by Debian ]" /></a> |
123 | ||
98266870 | 124 | <a href="https://hcoop.net/"> |
54a817d4 | 125 | <img src="img/buttons/hcoop.png" |
126 | alt="[ Hosted by HCoop]" /> | |
127 | </a> | |
128 | ||
98266870 | 129 | <a href="https://www.fsf.org/register_form?referrer=114"> |
54a817d4 | 130 | <img src="img/buttons/fsf_member.png" |
131 | alt="[ FSF Associate Member ]" /> | |
132 | </a> | |
133 | </p> | |
134 | ||
11f9bd69 CE |
135 | <p class="cke-footer">'Asked whether it is a good thing that the course of our |
136 | civilization being largely directed by gigantic immortal, | |
137 | belligerent, unsleeping multiheaded tax-avoiding parakeets whose | |
138 | unnatural lusts can never be sated, Dr. Larkey declined to | |
139 | comment, noting that "corporations have the rights of personhood | |
140 | in this country" and that "it is not my place to criticize the | |
141 | law".' | |
54a817d4 | 142 | </p> |
143 | <p class="cke-timestamp">Last Modified: | |
f6d19803 | 144 | January 21, 2013</p> |
54a817d4 | 145 | </body> |
146 | </html> |